                             - 176 -

                  3.    .

           .   
   ,     ,   
.     ,    
  ,      .
       .      
,  ,       , 
   ASCII       -
;           
  .
             -
,        .  
,   ,      
    ,     
  ,          
  . IBM      
 ,       
,     .     
    IBM       ,
     .

                             - 177 -

   4.3.1     .

                BIOS  DOS (
    )          
      .   
         ,
          
80-  [4.2.2].     -
   ,          
 ,     .
       ,      , 
            
.          ,
          
 ,     
 .       B000:0000  
    B800:0000 -    -
  PCjr.  EGA        -
 .      (  ) 
 ASCII ,      -  -
.   . 4-2    .   
            
    [4.2.3].        ,
    .

    .

         ,     , 
       PRINT  WRITE.     ,
  PRINT; WRITE -      -
,    . PRINT   -
  .      ,   -
 , , PRINT S$  PRINT X.    
,  ( )     PRINT,
, PRINT "This words are printed".    -
,     ASCII,    PRINT  
  CHR$, ,  PRINT  CHR$(65),    
    A ( ASCII #65).
        PRINT     ,  
       .  
     .    ,
         -
  .       ,  
   ,      (,
 PRINT        -
,  WRITE   ).   PRINT -
        ,   
             .
          -
 PRINT    , , PRINT S$;.
            -
 LOCATE.   LOCATE PRINT    
  ,    . -
    PRINT     ,     

                             - 178 -

 24- ,        ,  
    PRINT   24- .  PRINT
   25-          LOCATE;  
      .   -
     PRINT   . -
           24   25.
         -
   ,   .
        [7.1.9]  -
 PRINT          
.  ,      CHR$(13),   
    .      
PRINT  "One"+CHR$(13)+"Two"+CHR$(13)+"Three",    -
          .   ASCII
28-31            ,
,   .  PRINT    
      ,  ,   
PRINT      .
           
    .     -
  ,      -
   .         
&HB000,        POKE    
.         
  ,     .    80-
       160  
  (2        ).  
          ,  
 .       -
  PRINT,       -
  . ,       -
          24
 25,    .

    PRINT:

 10 CLS: KEY OFF              ' 
 20 DEF SEG = &HB000          '  
 30 LOCATE 1,1: PRINT CHR$(201)   '  
 40 LOCATE 1,80: PRINT CHR$(187)  '  
 50 LOCATE 1,24: PRINT CHR$(186)  '
 60 LOCATE 1,25: PRINT CHR$(200)  '
 70 POKE 3838,186                 ' 80  24
 80 POKE 3998,188                 ' 80  25
 90 FOR N=2 TO 79                 ' 
100 LOCATE 1,N: PRINT CHR$(205);: LOCATE 25,N: PRINT CHR$(205)
110 NEXT                          '
120 FOR N=2 TO 23                 ' 
130 LOCATE N,1: PRINT CHR$(186): LOCATE N,80: PRINT CHR$(186)
140 NEXT

                             - 179 -

       :

 10 CLS: KEY OFF               ' 
 20 DEF SEG = &HB000           '  
 30 POKE 0,201                 '  
 40 POKE 158,187               '  
 50 POKE 3840,200              '  
 60 POKE 3998,188              '  
 70 FOR N=2 TO 156 STEP 2      ' 
 80 POKE N,205: POKE N+3840,205  ' ,   
 90 NEXT
100 FOR N=160 TO 3680 STEP 160 ' 
110 POKE N,186: POKE N+158,186 '  
120 NEXT

    .

            
 -   BIOS    DOS.       
,    ,   , 
   ,         
 ,       
(      BackSpace,    
,        
).    :

    10H:

      9        
             A        
             E     ""  (  )

    21H:

      2        
             6        
             9       

    9  A  10H      -
  .    DOS     ,
   .  E  10H -
   ,  ASCII 9.

   ASCII   7     
   ASCII   8        (BackSpace)
   ASCII   9     
   ASCII  10      
   ASCII  13      

        10H    
 .    9        
  ,   A -  ,   -
           . AL
   ,  BL - .  -
    BH.      -

                             - 180 -

  ,       -
.        , -
   0.      BIOS
  ,      ,  -
  CX.   CX  1,     
     ,      
  -     .   ,  
     ,      -
.            
  -   ,    -
    .

;---   
   MOV  AH,9             ;   
   MOV  AL,THE_CHARACTER    ;  AL
   MOV  BL,112           ;  BL
   MOV  BH,0             ; 1
   MOV  CX,1             ;  
   INT  10H

  ,      
CX   BIOS       ,
       .    -
  E.      ,    A,  
      CX.        
   AL       .  -
     BL   -
,      .

;---     
            MOV  AH,0EH     ; 
            MOV  BH,0       ; 
            LEA  BX,STRING  ;BX   
NEXT_CHAR:  MOV  AL,[BX]    ;   AL
            CMP  AL,'$'     ;   
            JE   ALL_DONE   ; ,  
            INT  10H        ; 
            INC  BX         ;   
            JMP  SHORT NEXT_CHAR   ; 
ALL_DONE:

    DOS 21H        
,           
    ,    -
    .   DOS   -
,        5  10H
[4.5.3].       ,  -
 2  6.     Ctrl-Break [3.2.8],  
-  .   (    Ctrl-Break,    
 Ctrl-Break       ,   -
 ,    ).
          ,    ,
           
 ANSI.SYS [4.1.3].      
  DL,    AH     21H. 

                             - 181 -

 6    ,     
     .      
    DL   FF [3.1.5].     -
         DL.     
  6      ( [3.1.4]  -
 ,     ).

       MOV  AH,6       ; 
NEXT:  MOV  DL,0FFH    ;    
       INT  21H        ; 
       JZ   NEXT       ;   ,  
       CMP  AL,13      ;   ?
       JE   END_INPUT  ; ,   
       MOV  DL,AL      ;    DL
       INT  21H        ;    
       JMP  SHORT NEXT ; 

    .

                
  .        ,
        -
 ,     IBM    -
         
 .      ,  
     ,    
         MOVSB,
           
  .  ,      -
      .  ,    
           . 
     16K  32K  BIOS   
 .   ,      
      .      
      [4.2.1]     -
   [4.2.6].

;---  
SAMPLE_STRING  DB   'PRINT THIS STRING$'

;--- 
       MOV  AX,0B000H            ; 
       MOV  ES,AX                ;  
       LEA  BX,SAMPLE_STRING     ;BX   
       MOV  DI,CURSOR_START      ;   
NEXT:  MOV  AL,[BX]              ; 
       CMP  AL,'$'               ;   
       JE   ALL_DONE             ; ,  
       MOV  ES:[DI],AL           ;    
       INC  DI                   ;   2
       INC  DI                   ;
       INC  BX                   ;   -
       JMP  SHORT NEXT           ; 
ALL_DONE:

                             - 182 -

         PCjr (   EGA) 
,       .    -
          
,     .   -
     " " (all clear)      
.       3DAH.  
 0  1,    .  (3DAH -  , 
 PCjr     ;   
,      ,     -
.)

;---   
        MOV  DX,3DAH          ;  
CHECK_AGAIN:   IN   AL,DX     ; 
        TEST AL,1             ;  
        JNE  CHECK_AGAIN      ;  0,  
;---  
        LEA  BX,MESSAGE       ;   
        MOV  DI,2000          ;    
        MOV  AH,01000001B     ;   
NEXT_CHAR:   MOV  AL,[BX]     ; 
        CMP  AL,'$'           ;   
        JE   ALL_DONE         ; ,   
        MOV  ES:[DI],AX       ;  
        INC  BX               ;  
        INC  DI               ;  
        INC  DI               ;
        JMP  SHORT NEXT_CHAR  ;  
ALL_DONE:

            
      . 
,         
  ,     ,   
 .
   PCjr         ,   
,       -
      ,       
.          ,
   .

                             - 183 -

   4.3.2     .

   ,        -
,         
.         ,    
(,     ..) ,    .   
 AT BIOS         ,   MS DOS
    .   BIOS   
   . ,   -
      .  -
,  EGA  ,   ROM-BIOS   
      .   
 IBM PC  XT     .

    .

          ,    .
     PRINT S$,  S$     
  255 ,     .  -
 10  ,  :

   ASCII   7          
   ASCII   9          
   ASCII  10           
   ASCII  11               (Home)
   ASCII  12            (  + Home)
   ASCII  13           
   ASCII  28           
   ASCII  29           
   ASCII  30           
   ASCII  31           

       .

    .

     9  21H  .  DS:DX  -
    .     
$,    ,     $       .
    .    
       ;  
        0AH (
)  0DH ( ).

;---  
FIRST_STRING    DB   'This is the first string',0AH,0DH,'$'
SECOND_STRING   DB   'And this is the second string$'

;--- 
   MOV  AH,9             ;   
   LEA  DX,FIRST_STRING  ;   
   INT  21H              ;    
   LEA  DX,SECOND_STRING ;   
   INT  21H              ;     

                             - 184 -

   :

   ASCII   7           
   ASCII   8              (BackSpace)
   ASCII   9           
   ASCII  10            
   ASCII  13            

     DOS 40H  21H     
 .   ,     ,  
    -;     
       .      
    .   , 
           -
.          #1.
    BX,      CX. DS:DX
    .      
(  ) . ,    
""  ,            
  .  :

;--- 1000  
   MOV  AH,40H          ; 
   MOV  BX,1            ; 
   LEA  DX,STRING       ;  
   MOV  CX,1000         ;  
   INT  21H             ;

   MS DOS     Esc-,  
     . 
       9   21H,   
 ,  ,    
 .       -
.       ,  Esc--
       -
      .     ,
          
 .
    AT  ,  EGA,  13H  10H -
 .  ES:BP        ,   
   CX.  DX   ,   
  (       ,
        ).   BX  
   .      0  3, -
  AL     .

   AL = 0        ,  
   AL = 1        ,  
   AL = 2         ,
              
   AL = 3         
              

                             - 185 -

 AL  0  1,      BL.   
     .    -
   ,  ,    
  ,     .

    .

       $   9 -
     .        -
 ,       
.      ( [1.2.3]
 ),      [4.3.1].
        -  
, , ASCII 0,  $.    
    ,   . 
    ,    -
 MS DOS.

                             - 186 -

   4.3.3        .

             -
           .    
 ""   .   ,  -
        (, 
     )    
       .       
   ,      .
 BIOS         -
    ;       
        [4.3.1].   
        0   39 (1,40   )  
 80         (0*160)  (39*2) 
      .   
       . [4.5.3].  ,
          -
       .

    .

        SCREEN      
 (        SCREEN
   ).  SCREEN  5,10   ASCII
,     5,  10 (  
  1).        
  1, , SCREEN 5,10,1.     
        0,  
    () .
          0  255. 
       ,   
 ,     .  
 ATTRIBUTE MOD 16.       ,
       (((ATTIBUTE - FOREGROUND)/16)
MOD  128).       127,    
(,    ,    
  [4.1.3]).           
.

    .

    8  10H       
   .   BH     
  (  0    0  -
 ).     AL,   
  AH.      ,      
    ,         AH. 
      [4.3.4].  
       0,39  -
 2  :

                             - 187 -

;---  
   MOV  AH,2        ;  
   MOV  DH,0        ; 
   MOV  DL,39       ; 
   MOV  BH,0        ; 
   INT  10H         ; 
;---   
   MOV  AH,8        ;  /
   MOV  BH,2        ; 
   INT  10H         ; AH:AL    

    .

            
  .          
  .         
7,39  2  :

;---     7,39  2
   MOV  AX,0B800H       ; 
   MOV  ES,AX           ;ES     
   MOV  DI,1000H        ;   
   MOV  AL,80           ;    160
   MOV  BL,7            ; 
   MUL  BL              ;  AX (-1)*160
   MOV  AX,39           ; 
   ADD  BX,AX           ;   
   SHL  BX,1            ;   
   MOV  AX,ES:[BX][DI]  ; AH:AL  /

                             - 188 -

   4.3.4   .

              ,
    .       128
,  , PCjr - 256,  EGA - 1024 
   512.    ROM-BIOS
       128  
ASCII (   0  127).  128  
 ,     ,     -
. ,  MS DOS  3.00     GRAFTABL,
          128
. PCjr       128  
. EGA        200 -
   350 .
        PCjr   
 8*8 .       
.            ,
   ,    ( 7)  -
     .     1,
  .      
       
    .   .  4-3   8
   .
    128        1024  ,   
,      .     
   (           
[1.2.0])         -
 , ..    128.    
    128,     
  .     129,    
  ,  ..
        1FH      
0000:007C.         (
 ),    -    (, 
 ).  ,         
,          ;  
       ,  ,
   ,     .
  ,      ASCII 
  128-255   [4.3.5].   PCjr  1FH 
  128  ASCII,    44H -  .  
   ,    256  ,
 .
    EGA   ,    .   -
          (8*8
 8*14)    EGA     2 . 
      ,   -
      0.   ,  EGA
          
  .         
,    .  , 
 8*8  8*256   2048  .   
    ,   3      
       .

                             - 189 -

               
  0-3     ,    
3C5H.       3   3C4H,  
  .   1-0    ,  
   3     0,   3-2 - 
  ,   3  1.     
,          
    3       
 .        0.
          
      .       
  ,          
.

    .

         ,   -
     ,  -
.    ,      -
 ;    ,    -
  CLEAR      , 
  .      
    .    
 128   .   DATA   -
,  .      255,  129;  
    1,     1   .
   ,   
 .  .

100 ''' ,    &H3000
110 DATA 255, 129, 129, 129, 129, 129, 129, 255
120 DEF SEG = &H3000    '  
130 FOR N = 0 TO 7      ' 8 
140 READ Q              ' 1 
150 POKE N,Q            '   
160 NEXT                ' ..
170 '''  
180 DEF SEG = 0         '   
190 POKE 124,0          ' 
200 POKE 125,0          '
210 POKE 126,0          ' 
220 POKE 127,&H30       '
230 ''' 
240 LOCATE 12,12: PRINT CHR$(128)  '   128

    .

       PCjr   25H  -
 21H       1FH.     DS:DX
        .    
 .  [1.2.3].       -
 128  129.       ,
     .

                             - 190 -

;---  
CHARACTER_DATA   DB  11111111B, 10000000B, 10000000B, 10000000B
                 DB  10000000B, 10000000B, 10000000B, 11111111B
                 DB  11111111B, 00000001B, 00000001B, 00000001B
                 DB  00000001B, 00000001B, 00000001B, 11111111B

;---  
   PUSH DS                ; DS
   LEA  DX,CHAR_DATA      ;    DX
   MOV  AX,SEG CHAR_DATA  ;    DS
   MOV  DS,AX             ;
   MOV  AH,25H            ;  
   MOV  AL,1FH            ;  
   INT  21H               ; 
   POP  DS                ; DS

;--- 
   MOV  AH,2              ; 
   MOV  DL,128            ; 
   INT  21H               ; 
   MOV  DL,129            ; 
   INT  21H               ; 

    EGA  11H  10H   -
.      ,   
     ,    -
  .   .  AL 
0,  ,       
    .   AL  1  2,    
   8*14  8*8     
 .   AL  3,    -
      ,   . 
        BL
  .           
   BL   .       
 ES:BP   ,     
    CX,  ( )        DX,
    -  BH,    -  BL.   
  10H.  :

;--- 128     0
   MOV  AX,SEG CHARACTER_DATA   ;ES:BP    
   MOV  ES,AX                   ;
   MOV  BP,OFFSET CHARACTER_DATA   ;
   MOV  CX,128                  ; 
   MOV  DX,128                  ; 
   MOV  BL,0                    ; 
   MOV  BH,8                    ; 8*8
   MOV  AL,1                    ; 
   MOV  AH,11H                  ; 
   INT  10H                     ; 

                             - 191 -

   4.3.5     .

      8- ,   
      .  -
   [4.3.4].

    ASCII               (16-)

      128                      78 CC C0 CC 78 18 0C 78
      129                      00 CC 00 CC CC CC 7E 00
      130                      1C 00 78 CC FC C0 78 00
      131                      7E C3 3C 06 3E 66 3F 00
      132                      CC 00 78 0C 7C CC 7E 00
      133                      E0 00 78 0C 7C CC 7E 00
      134                      30 30 78 0C 7C CC 7E 00
      135                      00 00 78 0C 7C CC 7E 00

      136                      7E C3 3C 66 7E 60 3C 00
      137                      CC 00 78 CC FC C0 78 00
      138                      E0 00 78 CC FC C0 78 00
      139                      CC 00 70 30 30 30 78 00
      140                      7C C6 38 18 18 18 3C 00
      141                      E0 00 70 30 30 30 78 00
      142                      C6 38 6C C6 FE C6 C6 00
      143                      30 30 00 78 CC FC CC 00

      144                      1C 00 FC 60 78 60 FC 00
      145                      00 00 7F 0C 7F CC 7F 00
      146                      3E 6C CC FE CC CC CE 00
      147                      78 CC 00 78 CC CC 78 00
      148                      00 CC 00 78 CC CC 78 00
      149                      00 E0 00 78 CC CC 78 00
      150                      78 CC 00 CC CC CC 7E 00
      151                      00 E0 00 CC CC CC 7E 00

      152                      00 CC 00 CC CC 7C 0C F8
      153                      C3 18 3C 66 66 3C 18 00
      154                      CC 00 CC CC CC CC 78 00
      155                      18 18 7E C0 C0 7E 18 18
      156                      38 6C 64 F0 60 E6 FC 00
      157                      CC CC 78 FC 30 FC 30 30
      158                      F8 CC CC FA C6 CF C6 C7
      159                      0E 1B 18 3C 18 18 D8 70

      160                      1C 00 78 00 7C CC 7E 00
      161                      38 00 70 30 30 30 78 00
      162                      00 1C 00 78 CC CC 78 00
      163                      00 1C 00 CC CC CC 7E 00
      164                      00 F8 00 F8 CC CC CC 00
      165                      FC 00 CC EC FC DC CC 00
      166                      3C 6C 6C 3E 00 7E 00 00
      167                      38 6C 6C 38 00 7C 00 00

                             - 192 -

      168                      30 00 30 60 C0 CC 78 00
      169                      00 00 00 FC C0 C0 00 00
      170                      00 00 00 FC 0C 0C 00 00
      171                      C3 C6 CC DE 33 66 CC 0F
      172                      C3 C6 CC DB 37 6F CF 03
      173                      18 18 00 18 18 18 18 00
      174                      00 33 66 CC 66 33 00 00
      175                      00 CC 66 33 66 CC 00 00

      176                      22 88 22 88 22 88 22 88
      177                      55 AA 55 AA 55 AA 55 AA
      178                      DB 77 DB EE DB 77 DB EE
      179                      18 18 18 18 18 18 18 18
      180                      18 18 18 18 F8 18 18 18
      181                      18 18 F8 18 F8 18 18 18
      182                      36 36 36 36 F6 36 36 36
      183                      00 00 00 00 FE 36 36 36

      184                      00 00 F8 18 F8 18 18 18
      185                      36 36 F6 06 F6 36 36 36
      186                      36 36 36 36 36 36 36 36
      187                      00 00 FE 06 F6 36 36 36
      188                      36 36 F6 06 FE 00 00 00
      189                      36 36 36 36 FE 00 00 00
      190                      18 18 F8 18 F8 00 00 00
      191                      00 00 00 00 F7 18 18 18

      192                      18 18 18 18 1F 00 00 00
      193                      18 18 18 18 FF 00 00 00
      194                      00 00 00 00 FF 18 18 18
      195                      18 18 18 18 1F 18 18 18
      196                      00 00 00 00 FF 00 00 00
      197                      18 18 18 18 FF 18 18 18
      198                      18 18 1F 18 1F 18 18 18
      199                      36 36 36 36 37 36 36 36

      200                      36 36 37 30 3F 00 00 00
      201                      00 00 3F 30 37 36 36 36
      202                      36 36 F7 00 FF 00 00 00
      203                      00 00 FF 00 F7 36 36 36
      204                      36 36 37 30 37 36 36 36
      205                      00 00 FF 00 FF 00 00 00
      206                      36 36 F7 00 F7 36 36 36
      207                      18 18 FF 00 FF 00 00 00

      208                      36 36 36 36 FF 00 00 00
      209                      00 00 FF 00 FF 18 18 18
      210                      00 00 00 00 FF 36 36 36
      211                      36 36 36 36 3F 00 00 00
      212                      18 18 1F 18 1F 00 00 00
      213                      00 00 1F 18 1F 18 18 18
      214                      00 00 00 00 3F 36 36 36
      215                      36 36 36 36 FF 36 36 36

                             - 193 -

      216                      18 18 FF 18 FF 18 18 18
      217                      18 18 18 18 F8 00 00 00
      218                      00 00 00 00 1F 18 18 18
      219                      FF FF FF FF FF FF FF FF
      220                      00 00 00 00 FF FF FF FF
      221                      F0 F0 F0 F0 F0 F0 F0 F0
      222                      0F 0F 0F 0F 0F 0F 0F 0F
      223                      FF FF FF FF 00 00 00 00

      224                      00 00 76 DC CB DC 76 00
      225                      00 78 CC F8 CC F8 C0 C0
      226                      00 CC C0 C0 C0 C0 00 00
      227                      00 FE 6C 6C 6C 6C 6C 00
      228                      FC CC 60 30 60 CC FC 00
      229                      00 00 7E D8 D8 D8 70 00
      230                      00 66 66 66 66 7C 60 C0
      231                      00 76 DC 18 18 18 18 00

      232                      FC 30 78 CC CC 78 30 FC
      233                      38 6C C6 FE C6 6C 38 00
      234                      38 6C C6 C6 6C 6C EE 00
      235                      1C 30 18 7C CC CC 78 00
      236                      00 00 7E DB DB 7E 00 00
      237                      06 0C 7E DB DB 7E 60 C0
      238                      38 60 C0 F8 C0 60 38 00
      239                      78 CC CC CC CC CC CC 00

      240                      00 FC 00 FC 00 FC 00 00
      241                      30 30 FC 30 30 00 FC 00
      242                      60 30 18 30 60 00 FC 00
      243                      18 30 60 30 18 00 FC 00
      244                      0E 1B 1B 18 18 18 18 18
      245                      18 18 18 18 18 D8 D8 70
      246                      30 30 00 FC 00 30 30 00
      247                      00 76 DC 00 76 DC 00 00

      248                      38 6C 6C 38 00 00 00 00
      249                      00 00 00 18 18 00 00 00
      250                      00 00 00 00 18 00 00 00
      251                      0F 0C 0C 0C EC 6C 3C 1C
      252                      78 6C 6C 6C 6C 00 00 00
      253                      70 18 30 60 78 00 00 00
      254                      00 00 3C 3C 3C 3C 00 00
      255                       00 00 00 00 00 00 00 00